from base.base_page import BasePage
from selenium.webdriver.common.by import By
import time
from selenium import webdriver
import random

class TaobaoFavorite(BasePage):

    def __init__(self,driver,url):
        BasePage.__init__(self,driver,url)


    # 业务逻辑
    # 1.进入淘宝页面
    def to_taobao(self):
        self.get()

    # 2.登录
    def login(self):
        # 找到登录按钮，点击
        self.click(By.XPATH,'//*[@id="J_SiteNavLogin"]/div[1]/div[1]/a[1]')
        # 进入登录页面，定位到二维码登录图标，点击
        self.click(By.XPATH,'//*[@id="login"]/div[1]/i')
        # 等待一段时间，扫描
        time.sleep(10)

    # 3.收藏 ： 先获取收藏的数据，去收藏一条数据，获取收藏数据，比对前后收藏的数据是否新增
    # 3.1 进入收藏页面
    def to_favorite_page(self):
        # 关闭详情页面窗口之后需要切换到第一个窗口
        self.switch_window(0)
        # 滑动到顶部
        self.scroll_to_top()
        time.sleep(2)
        # 鼠标悬浮到收藏夹 /html/body/div[3]/div/ul[2]/li[4]/div[1]/a/span[2]
        self.move_to_element(By.XPATH,'/html/body/div[1]/div[1]/div/ul[2]/li[4]/div[1]/a/span[2]')
        time.sleep(2)
        # 点击收藏的宝贝
        self.click(By.XPATH,'/html/body/div[1]/div[1]/div/ul[2]/li[4]/div[2]/div/a[1]')
        time.sleep(2)

    # 3.1 先获取收藏的数据
    def get_favorite(self):
        # 滑动到底部，让全部的数据加载出来
        self.scroll_bottom()
        self.implicitly_wait(10)
        # 找到商品列表 商品的链接
        links = self.find_elements(By.CLASS_NAME,'img-controller-img-link')
        # 所有商品的列表，
        datas = []
        i = 0
        le = len(links)
        while i <le:
            img = links[i].get_attribute("href")
            datas.append(img)
            i+=1

        return datas

    # 3.2 去首页收藏一条数据

    # 去首页
    def go_home(self):
        self.click(By.XPATH,'/html/body/div[1]/div/ul[2]/li[1]/div/a/span')
        self.implicitly_wait(10)

    # 随机一个商品点击
    def random_product_get_link(self):
        # 滑动到底部，让全部的数据加载出来
        self.scroll_bottom()
        self.implicitly_wait(10)
        # 确定商品的数量
        items = self.find_elements(By.CLASS_NAME,'item')
        #
        count = len(items)
        # 随机一个商品的索引
        index = random.randint(0,count-1)
        # 点击的商品的链接
        link = items[index].find_element(By.CLASS_NAME,"hotsale-item").get_attribute("href")
        items[index].click()

        # 切换窗口到商品详情页面
        self.switch_window(1)
        self.implicitly_wait(10)

        # 滑动界面到收藏按钮
        self.scroll_to_element(self.find_element(By.XPATH,'/html/body/div[5]/div/div[3]/div[1]/div[1]/div[1]/div/div[1]/div[2]/ul/li/a'))
        # 点击收藏按钮
        self.click(By.XPATH,'/html/body/div[5]/div/div[3]/div[1]/div[1]/div[1]/div/div[1]/div[2]/ul/li/a')
        # 点击确定，确定是在某个framne
        frame = self.find_element(By.NAME,'popupIframe')
        self.implicitly_wait(10)
        self.driver.switch_to.frame(frame)

        # 定位确定，
        self.click(By.XPATH,"/html/body/div[1]/div/form/p/button")
        time.sleep(5)
        # 点击x关闭弹窗, x在主页面的，需要切换到主页面
        self.switch_main_frame()
        self.click(By.CLASS_NAME,'close-btn')

        self.driver.close()
        return link

    # 处理拿到的链接
    # https://item.taobao.com/item.htm?id=42053067233&scm=1007.34127.227518.0&pvid=9ef1b801-be8e-42f5-9540-27ad0f7c7a7c
    def splitUrl(self, url: str):
        strs = url.split("?")
        strs = strs[1].split("&")
        return strs[0]








